今天整理相簿時候,突然發現這些照片檔名都很雜亂,我就在想要如何一次整理這些照片,不然一張一張改不知道要改到何時,這篇就來介紹如何批量更改檔名
使用 Python 的 os 與 glob 標準函式庫
import glob
import os
images = glob.glob('../pic/*')
n = 1 # 設定名稱從 1 開始
for i in images:
os.rename(i, f'../pic/img-{n:03d}.jpg') # 改名時,使用字串格式化的方式進行三位數補零
n = n + 1 # 每次增加 1
使用 Python 的 glob 標準函式庫,搭配 Pillow 第三方函式庫,實作可以一次將大量的圖片,批次轉檔的功能 ( jpg 轉 png、png 轉 pdf、jpg 轉 gif...等 )
$pip install pillow
import glob
from PIL import Image
import os
# 定義要保存 PNG 檔案的目錄
output_dir = '../pic/png'
# 如果目錄不存在,則創建該目錄
os.makedirs(output_dir, exist_ok=True)
# 取得所有圖片檔案
images = glob.glob('../pic/*.[jJ][pP][gG]')
print(images)
for i in images:
print(i)
im = Image.open(i) # 開啟圖片檔案
# 使用 os.path.basename 來取得檔名,然後拆分出檔名(img-001)與副檔名(.jpg)
name, ext = os.path.splitext(os.path.basename(i))
if ext.lower() in ['.jpg', '.jpeg']: # 檢查副檔名是否為 .jpg 或 .jpeg
png = f'{name}.png'
# 使用 os.path.join 把目錄和檔案名合成一個路徑,確保輸出路徑正確
output_path = os.path.join(output_dir, png)
# 轉換成 png 並存檔
im.save(output_path, 'png')
參考資料 :
https://steam.oxxostudio.tw/category/python/example/files-rename.html
https://steam.oxxostudio.tw/category/python/library/glob.html
https://steam.oxxostudio.tw/category/python/example/image-conversion.html